<?php

namespace app\admin\model;

use think\Model;

class Base extends Model {

    protected function getUrl($url, $last=0){
        $ifpost = 0;
        $datafields = '';
        $cookiefile = '';
        $v = false;
        //构造随机ip
        $ip_long = array(
            array('607649792', '608174079'), //36.56.0.0-36.63.255.255
            array('1038614528', '1039007743'), //61.232.0.0-61.237.255.255
            array('1783627776', '1784676351'), //106.80.0.0-106.95.255.255
            array('2035023872', '2035154943'), //121.76.0.0-121.77.255.255
            array('2078801920', '2079064063'), //123.232.0.0-123.235.255.255
            array('-1950089216', '-1948778497'), //139.196.0.0-139.215.255.255
            array('-1425539072', '-1425014785'), //171.8.0.0-171.15.255.255
            array('-1236271104', '-1235419137'), //182.80.0.0-182.92.255.255
            array('-770113536', '-768606209'), //210.25.0.0-210.47.255.255
            array('-569376768', '-564133889'), //222.16.0.0-222.95.255.255
        );
        $rand_key = mt_rand(0, 9);
        $ip= long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1]));
        if($last!=0){
            $header = array("Connection: Keep-Alive","Accept: text/html, application/xhtml+xml, */*", "Pragma: no-cache", "Accept-Language: zh-Hans-CN,zh-Hans;q=0.8,en-US;q=0.5,en;q=0.3","User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)",'CLIENT-IP:'.$ip,'X-FORWARDED-FOR:'.$ip);
        }else{
            $header = array("Connection: Keep-Alive","Accept: text/html, application/xhtml+xml, */*", "Pragma: no-cache", "Accept-Language: zh-Hans-CN,zh-Hans;q=0.8,en-US;q=0.5,en;q=0.3","User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
        }
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, $v);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        $ifpost && curl_setopt($ch, CURLOPT_POST, $ifpost);
        $ifpost && curl_setopt($ch, CURLOPT_POSTFIELDS, $datafields);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        $cookiefile && curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
        $cookiefile && curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);
        curl_setopt($ch,CURLOPT_TIMEOUT,60); //允许执行的最长秒数
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        $ok = curl_exec($ch);
        curl_close($ch);
        unset($ch);
        return $ok;
    }

    //过滤特殊字符
    protected function filterSpecialCharacter($str='', $val=[]){

        $str = str_replace("<table>", '', $str);
//         if(!isset($val['</table>'])){$str = str_replace('</table>', '', $str);}
//         if(!isset($val['<\/table>'])){$str = str_replace('<\/table>', '', $str);}
//         if(!isset($val['<th>'])){$str = str_replace('<th>', '', $str);}
//         if(!isset($val['</th>'])){$str = str_replace('</th>', '', $str);}
//         if(!isset($val['<\/th>'])){$str = str_replace('<\/th>', '', $str);}
//         if(!isset($val['<tr>'])){$str = str_replace('<tr>', '', $str);}
//         if(!isset($val['</tr>'])){$str = str_replace('</tr>', '', $str);}
//         if(!isset($val['<\/tr>'])){$str = str_replace('<\/tr>', '', $str);}
//         if(!isset($val['<td>'])){$str = str_replace('<td>', '', $str);}
//         if(!isset($val['</td>'])){$str = str_replace('</td>', '', $str);}
//         if(!isset($val['<\/td>'])){$str = str_replace('<\/td>', '', $str);}
//         if(!isset($val['<span>'])){$str = str_replace('<span>', '', $str);}
//         if(!isset($val['</span>'])){$str = str_replace('</span>', '', $str);}
//         if(!isset($val['<\/span>'])){$str = str_replace('<\/span>', '', $str);}
//         if(!isset($val['<div>'])){$str = str_replace('<div>', '', $str);}
//         if(!isset($val['</div>'])){$str = str_replace('</div>', '', $str);}
//         if(!isset($val['<\/div>'])){$str = str_replace('<\/div>', '', $str);}
        return $str;
    }

    //排序-得分
    public function pegSort($arrData=[], $sort='SORT_ASC', $str='', $bj=''){

        $count = count($arrData);
        if($count<1){
            return false;
        } 
        $tmpArr = [];
        $arr = [];
        foreach($arrData AS $v){

            if(floatval($v[$str])>0){
                $arr[] = $v;
            }else{
                $tmpArr[] = $v;
            }
        }
        unset($arrData);

        $stock = array_column($arr,$str);
        if($sort=='SORT_ASC'){
            array_multisort($stock,SORT_ASC,$arr);
        }else{
            array_multisort($stock,SORT_DESC,$arr);
        }
        $arr[0]['score']++;
        $arr[0][$bj] = '#FF5C5C';
        $arr = array_merge($arr, $tmpArr);
        return $arr;
    }

    //排序处理
    protected function sortHandle($arr=[], $sort='SORT_ASC', $str='', $bj=''){

        $stock = array_column($arr,$str);
        if($sort=='SORT_ASC'){
            array_multisort($stock,SORT_ASC,$arr);
        }else{
            array_multisort($stock,SORT_DESC,$arr);
        }
        if($str!='score'){
            $arr[0]['score']++;
        }
        $arr[0][$bj] = '#FF5C5C';
        return $arr;
    }
}